package com.clear.honghefinance.biz.modules.assist_calculate_summary.handler;

import com.clear.honghefinance.biz.modules.assist_calculate.enums.AssistCalculateCategoryCodeEnum;
import com.clear.honghefinance.biz.modules.assist_calculate_summary.domain.vo.GetAssistCalculateBaseVO;
import com.clear.honghefinance.biz.modules.assist_calculate_summary.domain.vo.ListAssistCalculateBaseVO;

import java.util.List;

public interface AssistCalculateHandler {

    /**
     * 枚举身份的识别
     *
     * @return
     */
    AssistCalculateCategoryCodeEnum getHandlerType();

    /**
     * 创建辅助核算
     *
     * @param dto
     */
    boolean create(Object dto);

    /**
     * 修改辅助核算
     *
     * @param dto
     * @return
     */
    boolean update(Object dto);

    /**
     * 根据辅助核算id查询辅助核算列表
     *
     * @param ids 辅助核算id列表
     * @return
     */
    List<? extends ListAssistCalculateBaseVO> listByAssistCalculateSummaryIds(List<Long> ids);

    /**
     * 根据辅助核算id查询辅助核算详情
     *
     * @param id
     * @return
     */
    <R extends GetAssistCalculateBaseVO> R getDetailById(long id);
}
